// pages/preTaxDeduction/index.js
Page({
  data: {
    imageSrc: '',
    showResults: false,
    loading: false,
    deductions: [],
    totalDeduction: 0,
    taxSavings: 0,
    savingsRate: 0,
    progressPercent: 0,
    chartData: [],
    tips: []
  },

  onLoad: function (options) {
    // 页面加载时的初始化操作
  },

  onReady: function () {
    // 页面渲染完成后的操作
  },

  onShow: function () {
    // 页面显示时的操作
  },

  onHide: function () {
    // 页面隐藏时的操作
  },

  onUnload: function () {
    // 页面卸载时的操作
  },

  onPullDownRefresh: function () {
    // 用户下拉刷新时的操作
  },

  onReachBottom: function () {
    // 用户上拉触底时的操作
  },

  onShareAppMessage: function () {
    // 用户点击右上角分享时的操作
  },

  // 选择图片
  chooseImage: function() {
    wx.chooseImage({
      count: 1,
      sizeType: ['original', 'compressed'],
      sourceType: ['album', 'camera'],
      success: (res) => {
        this.setData({
          imageSrc: res.tempFilePaths[0],
          showResults: false
        });
      },
      fail: (err) => {
        console.error('选择图片失败', err);
        wx.showToast({
          title: '选择图片失败',
          icon: 'none'
        });
      }
    });
  },

  // 识别图片中的扣除项目
  recognizeImage: function() {
    if (!this.data.imageSrc) {
      wx.showToast({
        title: '请先选择图片',
        icon: 'none'
      });
      return;
    }

    // 显示加载状态
    this.setData({
      loading: true
    });

    // 模拟识别过程（实际项目中这里会调用OCR API）
    setTimeout(() => {
      this.simulateRecognition();
    }, 2000);
  },

  // 模拟识别过程
  simulateRecognition: function() {
    // 模拟2025年的扣除项目数据
    const mockDeductions = [
      {
        id: 1,
        name: '子女教育',
        amount: 12000,
        category: '专项附加扣除',
        status: '有效',
        statusClass: 'status-valid'
      },
      {
        id: 2,
        name: '住房贷款利息',
        amount: 12000,
        category: '专项附加扣除',
        status: '有效',
        statusClass: 'status-valid'
      },
      {
        id: 3,
        name: '赡养老人',
        amount: 24000,
        category: '专项附加扣除',
        status: '有效',
        statusClass: 'status-valid'
      },
      {
        id: 4,
        name: '继续教育',
        amount: 4800,
        category: '专项附加扣除',
        status: '有效',
        statusClass: 'status-valid'
      },
      {
        id: 5,
        name: '商业健康保险',
        amount: 2400,
        category: '其他扣除',
        status: '有效',
        statusClass: 'status-valid'
      },
      {
        id: 6,
        name: '企业年金',
        amount: 12000,
        category: '其他扣除',
        status: '有效',
        statusClass: 'status-valid'
      }
    ];

    // 计算总扣除额
    const totalDeduction = mockDeductions.reduce((sum, item) => sum + item.amount, 0);
    
    // 计算节税额（假设税率10%）
    const taxSavings = totalDeduction * 0.1;
    
    // 计算节省率
    const savingsRate = Math.min(100, Math.round((taxSavings / (totalDeduction + taxSavings)) * 100));
    
    // 计算进度百分比
    const progressPercent = Math.min(100, Math.round((totalDeduction / 50000) * 100));

    // 准备图表数据
    const categoryTotals = {};
    mockDeductions.forEach(item => {
      if (!categoryTotals[item.category]) {
        categoryTotals[item.category] = 0;
      }
      categoryTotals[item.category] += item.amount;
    });

    const chartData = Object.keys(categoryTotals).map((category, index) => {
      const amount = categoryTotals[category];
      const percentage = Math.round((amount / totalDeduction) * 100);
      
      // 使用不同颜色（避免蓝紫色）
      const colors = ['#4a90e2', '#5cb85c', '#f0ad4e', '#d9534f'];
      const color = colors[index % colors.length];
      
      return {
        category,
        amount,
        percentage,
        color
      };
    });

    // 设置提示信息
    const tips = [
      '您已充分利用专项附加扣除政策，每年可节省税款约' + Math.round(taxSavings) + '元',
      '建议保留所有扣除凭证，以备税务部门核查',
      '商业健康保险扣除额度每年最高2400元，请合理规划',
      '继续关注税收优惠政策变化，及时调整扣除项目',
      '赡养老人扣除标准为每月2000元，可与其他扣除项目叠加享受'
    ];

    // 更新页面数据
    this.setData({
      loading: false,
      showResults: true,
      deductions: mockDeductions,
      totalDeduction: totalDeduction,
      taxSavings: Math.round(taxSavings),
      savingsRate: savingsRate,
      progressPercent: progressPercent,
      chartData: chartData,
      tips: tips
    });
  }
});